查看原文
其他

使用ProBuilder实现自定义Snaps Prototype资源

Unity Unity官方平台 2022-05-07

我们曾介绍快速实现项目的Snaps系列资源包。本文将帮助你了解如何使用Snaps系列资源包快速构建关卡,以及根据不同游戏类型来自定义修改这些资源。


Snaps Prototype系列资源包

Snaps Prototype系列资源包是完全使用Unity的3D建模工具ProBuilder创建的模块化原型资源,这些资源可以放置到利用ProGrids系统的网格上。


这些基于真实尺寸构建的资源可以使布局游戏环境更为简单,不论新手还是有经验的关卡设计师都可轻松驾驭。不仅如此,开发者还能够使用细节丰富的美术资源替换这些原型资源。


Asset Store资源商店现已推出多款不同主题的Snaps系列资源包。更多的资源包将会陆续发布,我们希望能够帮助开发者轻松构建任何原型。



Snaps Prototype系列资源包中低多边形资源模块化的设计,让关卡原型的构建更加简单的同时,开发者也可以完全控制它们的使用方式。你不再需要创作自己的3D资源,或者使用额外的创作工具来修改资源,从而节省下大量时间。


这些资源十分轻量,不包含任何纹理,部分网格分配了不同的材质。这些资源已设置UV,方便开发者添加纹理。你可以在布置好关卡后,使用细节丰富的网格来替代Snaps Prototype的资源。


Snaps系列资源包的结构

我们先来了解以下Snaps系列资源包的组织结构。

 

如果你的Unity项目中未包含ProBuilder和ProGrids,Snaps资源包中会有一个脚本自动下载ProBuilder和ProGrids资源包。

 

所有原型资源都存放在_SNAPS_PrototypingAssets中的AssetStoreOriginals文件夹下。你可以在About文件夹下,找到关于Snaps和资源的一些重要信息。而资源则根据不同的资源包名称分类,例如:ModernOfficeInteror、Scifi_Industrial。

 

每个Snaps Prototype资源包都包含一个Prefabs文件夹,其中有指定好材质的所有3D网格,可以立即用于场景中。资源包中还有Materials文件夹,其中为分配到不同模型部位的各个材质文件,以及SampleScenes文件夹包含在环境中放置资源的示例场景。

 

话不多说,我们来看看如何快速构建起一个场景。


使用Snaps资源构建原型

现在,我们创建一个新场景,来看看如何在关卡中布置Snaps资源。

 

我们将使用Asset Store资源商店上的两款Snaps系列资源包:Snaps Prototype | Sci-Fi/Industrial和Snaps Prototype | Office资源包,来构建一个未来风格的住宅区。

 

在项目中导入Snaps资源包,并导入ProGrids和ProBuilder后,我们可以注意到新的UI元素会出现在场景视图的左上角。这一组图标是ProGrids工具包的一部分,其中包含了快速拼接模型所需的所有工具。点击工具栏中的Grid Visibility图标,可以显示出网格。

 

通过使用下方的X、Y、Z和3D图标,我们可以在相应的轴或对象上渲染网格。在它的下方是控制网格拼接的按钮,点击后,对象在场景中移动时会在具体的拼接间隔之间移动。也可以启用缩放和角度拼接。


了解更多信息,请查看ProGrids使用帮助文档:

https://docs.unity3d.com/Packages/com.unity.progrids@3.0/manual/interface.html

 

首先,我们使用网格,从Sci-fi/Industrial资源包中选取一块地面瓦片,将其拖入场景中。然后使用Push to Grid(对齐到网格)按钮将瓦片对齐到网格上,这里对应的拼接增量默认设为1,请确保Snapping处于打开状态。

 

我们在场景中试着移动瓦片时,它会以1单位为增量拼接到网格上。瓦片的轴心点设置在一个角上,以确保该瓦片可以拼接到别的瓦片上。


如下图所示,我们继续添加瓦片,布局关卡的基础地面。


 

我们用同样的方法放置墙壁、门和楼梯。在放置道具时,我们需要将拼接增量从1调整为更小的值,以便在放置时有更多的选择空间。我们也可以手动放置道具,使用Unity默认的拼接工具将其拼接到合适的表面。



使用Snaps资源就是这么简单,好好享受构建新游戏环境的过程吧!下面,我们将学习如何编辑Snaps资源,使用ProBuilder创建新的资源。


 

当完成了关卡布局后,我们可能需要将一些低多边形的网格替换为高分辨率的网格,或者反过来操作,从而达到快速迭代的目的。


我们可以使用Asset Swap Tool工具轻易实现资源的替换,该工具下载地址:

https://assetstore.unity.com/packages/tools/integration/asset-swap-tool-151202

 

我们可以在Snaps→Snaps Swap Tool下找到该脚本。


在脚本选项中,我们导入包含Snaps Prototype资源的Prefabs文件夹。在该脚本中,预制件的文件名称应与Snaps资源文件名相匹配。给预制件指定了脚本后,我们可以一键替换场景中选中的对象或所有对象。

 

我们还可以使用Snaps Prototype资源创建自定义的Nested Prefabs嵌套预制件。该脚本能够自动生成对应的高分辨率预制件。


使用ProBuilder编辑Snaps资源

如果想要改资源包中的一些资源,如何处理呢?例如:替换不同的材质或者更改拓扑?


通常我们需要使用外部的的3D建模工具,但由于Snaps资源是使用ProBuilder制作的,所以我们可以在Unity编辑器中,使用ProBuilder编辑现有道具或者创建新道具。



什么是ProBuilder?

ProBuilder是一款完全免费的3D建模和关卡编辑工具,可以在Unity编辑器中直接使用。ProBuilder提供许多3D建模工具,非常适合用于制作原型。它兼容ProGrids,可以轻松创建特定位置的几何体。


如果你想入门学习3D模型制作,或通过简单的方法在Unity构造关卡布局,ProBuilder将是你最适合的入门学习的工具。


编辑现有网格,我们需要先将其转换回ProBuilder可编辑格式。为此,我们要在场景中的Object模式下选中网格。



我们点击Tools→ProBuilder→Object→ProBuilderize,将在场景视图顶部打开一个新的ProBuilder工具栏,现在我们可以开始编辑网格了。


我们还需要打开ProBuilder窗口,访问其它的3D建模工具。选择Tools→ProBuilder→ProBuilder Window,然后将窗口放置到合适的地方。


指定新材质

ProBuilder的一个主要工具是Material Editor材质编辑器,它不在主要工具包之中,你需要点击Tools→ProBuilder→Editors→Open Material Editor打开它。


ProBuilder还有其它许多实用的编辑器,例如:UV编辑器和平滑编辑器,这些编辑器通常在3D建模工具包中。


我们先更改对象的材质,尝试营造一种未来感的外观,Snaps Prototype | Office资源包中的配色方案并不非常符合主题,所以要进行修改。


首先,使用ProBuilderize功能处理道具。我们先选择桌子,查看Material Editor材质编辑器,在此选中一个已有材质,将其指定到整个对象或选中的多边形范围,还可以指定一些材质到热键上。

 

我们快速地为桌面创建一个哑光白色材质,为桌腿创建一个黑色金属材质。我们可以将两种材质指定到不同的热键上。指定完成后,点击场景视图中工具栏里的对应按钮,进入ProBuilder表面模式。

 

按住Shift选中桌面的所有表面,然后按下Assign Material按钮或者设定的热键,材质便替换好了。为桌腿的所有表面替换上金属材质也是相同的操作。



我们还可以为电脑屏幕加上发光材质,或者直接更改屏幕原先指定的材质。使用ProBuilder重新指定Snaps资源的材质就是这么简单。


编辑网格

如何更改关卡中单个网格的形状呢?关卡中有一把办公椅,但是它看起来没有未来感,我们尝试将它变成一把帅气的电竞椅。



在观察椅子的参照图片后,我们大概知道电竞椅应该是什么形状。电竞椅的靠背需要更长一点,上边有一个圆形的枕部。靠背上方应该有两个孔,用于固定靠枕。靠背两边应该像翅膀一样展开,靠背底部要一直延伸到座椅。

 

我们先来制作出大致形状,进入表面模式,选中靠背顶部和底部的多边形。接着,切换到缩放工具,沿Y轴放大多边形,顶部和底部多边形之间的距离会变大。然后,我们可以使用移动工具在单个表面上做一些微调。

 

我们在ProBuilder中缩放、移动和旋转工具的作用轴范围将取决于使用时是处于Local局部模式还是Global全局变形模式,是否选中区域的中心或选中部分的轴心点,例如:一个面或一个角。

 

通常,使用Local局部变形模式是最合适的,在此模式下,作用轴只作用于选中的对象,在更改位置时也只会以选择对象的中心为参照,这样在使用工具时,便可以确保选中对象受到对称的影响。


 

我们可以注意到在椅子的顶部没有足够的细节,以合适地形成头枕部分。


我们可以进入Edge边缘模式,使用Insert Edge Loop工具给椅子靠背上部加上两个新的环线。然后拖动背部新加的两个边缘,将其向上拖动,就能够做出类似圆形的形状。


 

然后,我们制作椅子靠背的两边。拖动两边的环线,将背部伸展开来,然后我们需要加上新的边缘圈让椅子更类似圆形。两边的伸展部分也应稍微向前。



下一步要在靠背上挖两个孔。我们需要用到新的工具,将现有的四边形几何体切分为三角形,然后删去部分三角形表面,再使用新的多边形表面连接间隙轮廓。

 

首先,我们需要将靠背中部的部分多边形向上拖动。然后,同时选中前部和后部的四块呈斜向排列的表面,在ProBuilder面板中按下Triangualte Faces来查看结果。


 

可以看到,部分新划分的三角形朝向错误。我们可以撤销划分操作,取消选择形成朝向错误三角形的部分。接着仅在网格的一边重新执行划分三角形操作。


然后,我们可以在余下的多边形部分使用Flip Face Edge工具,再次划分这些表面的三角形后,可以看到边缘的朝向就被正确翻转过来了。


 

现在,选中新划分的三角形,使用Delete Faces工具来形成一个开口。这步完成后,我们可以在边缘模式下补上新形成的网格洞,选中前部和后部的一对表面,使用Bridge Edges工具补上它们。



使用平滑编辑器

ProBuilder的Smoothing平滑编辑器可以让椅子的边边角角稍微圆滑一点。我们可在Tools→ProBuilder→Editors→Open Smoothing Editor中打开平滑编辑器。

 

在Face模式中使用选取框选中整个对象,请确保启用Select Hidden,然后按下平滑编辑器窗口中的Clear Smoothing Groups按钮,去除现有的平滑组。


我们需要平滑椅子的一些部位,添加上圆润的效果。首先,我们选中靠背上的所有表面,通过按下编辑器中的数字按钮,将它们添加到对应平滑组中。注意不要选中椅子后方底部的金属部位。

 

我们也可以对坐垫做相同的处理,并使用相同的平滑组,因为靠背和坐垫的表面并不是相连的。我们也要为模型上其它应该呈圆形的部分,例如:液压杆和椅子腿部,添加平滑组。


请注意:如果想要在平滑两个面的同时保留部分锐利的边缘,则不要在这些位置指定平滑组。

 

大功告成。左边是原本的办公椅,右边则是我们做出来的帅气电竞椅了。


使用ProBuilder定制资源

下面,我们将学习如何用这些资源包制作自定义道具。我们将制作一个外星风格的小型道具,它将作为门的控制面板。

 

首先,我们在ProBuilder中创建一个基本几何体,找到New Shape工具,按下工具名称边的“+”按钮打开配置窗口。在打开的对话框中设置新形状的大小数值和具体形状类型。



在设置时,请记住Snaps资源都是基于真实世界尺寸制作的,所以要考虑与对象相关事物的大小,例如:正常人的平均身高。下面是我们使用的大小数值。


 

现在,我们需要将该物体转变为可拼接状态,在对象的底部中心放置轴心点,让其能够拼接到网格上。如果对象是一块地面或者墙面瓦片,我们可以将轴心点放在其中一个角落顶点的位置上。

 

ProBuilder有专用的Set Pivot工具,可以将轴心点放置在选中部分的中心点上。因此,我们可以选中新网格的底部表面,将选择控件放置在中心位置,然后按下Set Pivot按钮将轴心点放在对象的底部中心。


 

现在开始构造对象的形状。我们给对象指定一个材质,将网格的顶部表面部分向内缩小,做出上小下大的形状。然后使用Extrude Faces工具在顶部添加新的几何形状,再将其向内缩小。

 

我们在制作模型时仍可以使用ProGrids的拼接功能。我们可以打开该功能,然后将新挤压出来的表面放到和基础网格顶部相同高度的位置。

 

我们选中基础网格顶部的外围边缘,使用Move工具降低高度。在顶部再挤压一次,对象的基本外形就完成了。



现在我们给道具添加发光的内嵌线条。首先,为网格的四个面加上两条环线,然后在边缘圈的每个面再分别添加四条环线,如下图所示。


 

现在,我们选中两条外围的边缘环线,将其向中心缩小。然后在其余表面上执行相同的操作。接着,选中所有边缘环线的内侧部分,在Extrude菜单中,将其通过表面法线以厚度为-0.01的大小向内挤压。这样我们就在网格上制作出内嵌线条了。


我们再创建一个新的发光材质,将其指定到内嵌线条上,于是获得了以下效果。

 

 

目前,道具的顶部看起来太单调,我们要进行改进,将顶部表面的四个顶点向下拖动。使用Connect Vertices工具添加支持的边缘,确保在向下拖动顶点时四边形能正确划分成三角形。然后,选中四个外部顶点,使用Move工具将它们向下拖动。



除此之外,我们还能够在网格上添加一个漂浮的物件。选中网格顶部现有的四个三角形表面,点击Detach Faces。此操作会形成一个新的ProBuilder网格,但在原网格上留下一个孔。


要补上这个孔,我们需要在原来的网格上,选中丢失表面周围的边缘,然后使用Fill Hole工具。我们可以将分离出来的网格向上拖动,旋转90度角。


虽然该元素是漂浮着的,但我们想要将其保留为相同网格的一部分。按住Shift键选中两个网格,然后使用Merge Objects工具将它们合并在一起。



最后在新网格的两个面分别再挤压两次,为其指定一个发光材质,完成最后的加工。

 

将该网格放在门边,下面就是我们的成果了。


结语

我们希望该指南可以帮助你学习使用Snaps系列资源包。了解更多关于Snaps Prototype等Snaps系列资源包的信息:

https://unity.com/snaps


下载Unity Connect APP,请点击此处 观看更多Unity官方精彩视频,请关注“Unity官方”B站账户。


你可以访问Unity答疑专区留下你的问题,Unity社区和官方团队帮你解答:

Connect.unity.com/g/discussion


推荐阅读

创作类《塞尔达传说:旷野之息》风格的水着色器

Unity新一代输入系统介绍

使用Snaps系列资源包,让游戏制作更加轻松

创作赛车游戏的四款插件

2020年Unity Pro专业版和Plus加强版订阅价格将调整

《Arena of Valor》中使用的四款功能强大的插件

 


喜欢本文,请点击“在看”

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存